package com.fyl.leetcode.doublePointer;

/**
 * @author:fyl
 * @date 2021/8/27 9:35
 * @Modified By:
 * @Modified Date:
 * @Description: 844
 * 给定 S 和 T 两个字符串，当它们分别被输入到空白的文本编辑器后，判断二者是否相等，并返回结果。 # 代表退格字符。
 * 注意：如果对空文本输入退格字符，文本继续为空。
 * 示例 1：
 * 输入：S = "ab#c", T = "ad#c"
 * 输出：true
 * 解释：S 和 T 都会变成 “ac”。
 */
public class BackspaceCompare {
    public static boolean backspaceCompare(String s, String t) {
        return handleStr(s).equals(handleStr(t));
    }

    public static String handleStr(String str) {
        int slow = 0;
        StringBuilder s  = new StringBuilder();
        for (int fast = 0; fast < str.length(); fast++) {
            if (str.charAt(fast) != '#') {
                s.append(str.charAt(fast));
                slow++;
            } else if (slow > 0 && str.charAt(fast) == '#') {
                s.deleteCharAt(--slow);
            }
        }
        return s.toString();
    }

    public static void main(String[] args) {
        String s = "ab#c";
        String t = "ad#c";
        System.out.println(backspaceCompare(s, t));
    }
}
